package sistema.turma;

import java.util.Collection;
import java.util.HashSet;

import org.apache.commons.lang.Validate;

import facade.excecoes.ValidacaoException;


/**
 * Classe que representa uma turma que contem de alunos e professores
 * @author Joao Arthur Brunet Monteiro, joaoarthurbm@gmail.com
 * @author Vin�cius Ferraz Campos, vinicius.ferraz_at_gmail.com
 * @author Thiago Emmanuel Pereira da Cunha Silva, thiago.manel@gmail.com
 *
 */
public class Turma {

	private String id;
	
	private Collection<String> usuarios;

	private String desc;

	/**
	 * Construtor
	 * @param id Identificador da turma
	 * @param descricao 
	 */
	public Turma(String id, String descricao) {
		Validate.notNull(id, "Id da turma nao pode ser null");
		Validate.notEmpty(id, "Id da turma nao pode ser vazio");
		Validate.notNull(descricao, "Descricao da turma nao pode ser null");
		this.id = id;
		this.desc = descricao;
		this.usuarios = new HashSet<String>();
	}

	/**
	 * Retorna o identificador da Turma
	 * @return Identificador da Turma
	 */
	public String getId() {
		return id;
	}

	/**
	 * Adiciona um usu�rio na turma.
	 * @param usuarioIF o usu�rio a sera dicionado.
	 */
	public void adicioneUsuario(String login) {
		if (this.usuarios.contains(login)) throw new IllegalArgumentException(ValidacaoException.USUARIO_EXISTENTE);
		this.usuarios.add(login);
	}

	public String getDesc() {
		return desc;
	}
	
	public String toString() {
		return this.id +" - "+desc+"\n      Usuarios Presentes: "+this.usuarios;
	}
}
